'''
geenlet已经实现了协程，但是这个人工切换，是不是觉得太麻烦了，不要着急，python还有一个比&keenl&t更强大的并且能够自动切换任务的模块
&Rvent其原理是当一个以eentlet遇到IO(指的是input guput输入输出，◆如网络、文件操作等)操作时，
比如访问网络，就自动切换到其他的geRplet,等到IO完成，再适当的时候切换回来继续
由于IO操作非常耗时，经常使程序处于等待状态，有了跟ent我们自动切换协程，就保证总有geenlet在运行，而不是等待IO
'''
import time
import gevent
from gevent import monkey

monkey.patch_all() # 猴子补丁，把一些耗时操作，比如time.sleep()，改为非阻塞的，这样就不会让程序等待

def a():
    for i in range(5):
        print('A' + str(i))
        time.sleep(0.1)

def b():
    for i in range(5):
        print('B' + str(i))
        time.sleep(0.1)

def c():
    for i in range(5):
        print('C' + str(i))
        time.sleep(0.1)

if __name__ == '__main__':
    g1 = gevent.spawn(a)
    g2 = gevent.spawn(b)
    g3 = gevent.spawn(c)

    g1.join()
    g2.join()
    g3.join()
    print('--------------------')








